﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ServiceSATT.ui;
using ServiceSATT;
namespace ReporteSATT
{
    public enum TipoRanking
    {
        Single,
        Doble,
        Varones,
        Mujeres,
        Categoría
    }
    public class ReporteRankig : IUiRankingTorneo
    {
        RptRanking rpt = new RptRanking();
        DataSet.DsTorneos ds = new ReporteSATT.DataSet.DsTorneos();
        public CrystalDecisions.CrystalReports.Engine.ReportClass ListadoRanking(TipoRanking tipo)
        {
            ITorneoService sede = new TorneoService();
            string url = System.AppDomain.CurrentDomain.BaseDirectory;
            switch (tipo)
            {
                case TipoRanking.Varones:
                    sede.RankigVarones(this);
                    rpt.FileName = "rassdk://" + url + "\\Reportes\\RptRanking.rpt";
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        rpt.SetDataSource(ds);
                        return rpt;
                    }
                    else
                        throw new ReporteException("No hay datos para generar reporte.");
                    break;
                //case TipoRanking.Mujeres:
                //    sede.RankigMujeres(this);
                //    rpt.FileName = "rassdk://" + url + "\\Reportes\\RptRanking.rpt";
                //    if (ds.Tables[0].Rows.Count > 0)
                //    {
                //        rpt.SetDataSource(ds);
                //        return rpt;
                //    }
                //    else
                //        throw new ReporteException("No hay datos para generar reporte.");
                //    break;
                //case TipoRanking.Single:
                //    sede.RankigSingles(this);
                //    rpt.FileName = "rassdk://" + url + "\\Reportes\\RptRanking.rpt";
                //    if (ds.Tables[0].Rows.Count > 0)
                //    {
                //        rpt.SetDataSource(ds);
                //        return rpt;
                //    }
                //    else
                //        throw new ReporteException("No hay datos para generar reporte.");
                //    break;
                //case TipoRanking.Doble:
                //    sede.RankigDobles(this);
                //    rpt.FileName = "rassdk://" + url + "\\Reportes\\RptRanking.rpt";
                //    if (ds.Tables[0].Rows.Count > 0)
                //    {
                //        rpt.SetDataSource(ds);
                //        return rpt;
                //    }
                //    else
                //        throw new ReporteException("No hay datos para generar reporte.");
                //    break;

                default:
                    throw new NotImplementedException("No hay implementacion para el reporte seleccionado.");
            }
        }

        #region IUiReporteRanking Members

        public System.Data.DataTable Ranking
        {
            set
            {
                ds.DtRanking.Merge(value);
            }
        }

        #endregion
    }
}
